package cn.yuanqiao.archive.bianyan.mapper;

import cn.yuanqiao.archive.bianyan.domain.YqZhuanTi;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 专题Mapper接口
 *
 * @ProjectName: ruoyi-modules-system
 * @Package: cn.yuanqiao.archive.bianyan.mapper
 * @ClassName: ZhuanTiMapper
 * @Author: lenovo
 * @Description: hbWang
 * @Date: 2023/7/5 9:19
 * @Version: 1.0
 */
public interface YqZhuanTiMapper {
    /**
     * 查询专题
     *
     * @param typeId 专题主键
     * @return 专题
     */
    public YqZhuanTi selectZhuanTiByTypeId(@Param("typeId") String typeId,
                                           @Param("tableName") String tableName);
    /**
     * 查询专题
     *
     * @param parentId 父节点id
     * @return 专题
     */
    public YqZhuanTi selectZhuanTiByTyPeparentId(@Param("parentId") String parentId,
                                                 @Param("tableName") String tableName);

    /**
     * 查询专题数
     *
     * @param typeName
     * @return
     */
    public List<YqZhuanTi> selectZhuanTiByTypeName(@Param("typeName") String typeName,
                                                   @Param("tableName") String tableName, @Param("loginId")Long loginId);

    /**
     * 查询专题列表
     *
     * @param zhuanTi 专题
     * @return 专题集合
     */
    public List<YqZhuanTi> selectZhuanTiList(@Param("zhuanTi") YqZhuanTi zhuanTi,
                                             @Param("tableName") String tableName);

    /**
     * 新增专题
     *
     * @param zhuanTi 专题
     * @return 结果
     */
    public int insertZhuanTi(@Param("zhuanTi") YqZhuanTi zhuanTi, @Param("tableName") String tableName);

    /**
     * 修改专题
     *
     * @param zhuanTi 专题
     * @return 结果
     */
    public int updateZhuanTi(@Param("zhuanTi") YqZhuanTi zhuanTi, @Param("tableName") String tableName);

    /**
     * 删除专题
     *
     * @param typeId 专题主键
     * @return 结果
     */
    public int deleteZhuanTiByTypeId(@Param("typeId") String typeId, @Param("tableName") String tableName);

    /**
     * 批量删除专题
     *
     * @param typeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteZhuanTiByTypeIds(@Param("typeIds") String[] typeIds, @Param("tableName") String tableName);

    List<YqZhuanTi> selectYqZhuanTiTreeByPid(@Param("pId") Long id, @Param("tableName") String tableNameZt, @Param("loginId") Long loginId, @Param("code")String code);

    List<YqZhuanTi> getTree(@Param("pId")Long id, @Param("tableName") String tableNameZt);

    int getAchievementCount(@Param("ids") Long[] ids, @Param("code") String code);

    List<YqZhuanTi> selectYqZhuanTiTree(@Param("pId") Long id, @Param("tableName") String tableNameZt, @Param("code") String code);

   int selectYqZhuanTiTreeByState(@Param("pId") Long id, @Param("tableName") String tableNameZt, @Param("code") String code);
}
